<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function Person(name, age) {
            // 属性
            this.name = name;
            this.age = age;
            // this.say = function () {
            //     console.log('实例成员的say');
            // }
        };
        // 方法
        // Person.prototype.say = function () {
        //     console.log('原型的say');
        // };
        // Person.prototype.run = function() {
        //     console.log('跑步');
        // };
        // 当访问一个对象的某个属性或方法时，会先在这个对象本身属性上查找，如果没有找到，则会去它的`__proto__`上查找，即它的构造函数的prototype，如果还没有找到就会再在构造函数的prototype的`__proto__`中查找，这样一层一层向上查找就会形成一个链式结构，我们称为原型链。
        // 实例化
        var p1 = new Person('黄乐伟', 20);
        console.log(p1);
        console.log(p1.valueOf());
        p1.say();
        // console.log(p1);
        // p1.toString();
        // console.log(p1.wangwenbo);
    </script>
</body>

</html>